package accion;

import static org.junit.Assert.*;

import org.junit.*;
import bean.*;

/**
 * Clase testeadora de la clase ReciboAccion
 * 
 * @author Ricardo R. Barreno Cortijo 
 *
 */
public class ReciboAccionTest {
	
	private ResidenteAccion _residenteAccion;
	private ViviendaAccion _viviendaAccion;
	private ResidenteViviendaAccion _residenteViviendaAccion;
	private ReciboAccion _reciboAccion;
	
	
	@Before
	public void inicializarTablas() {

		this._residenteAccion = new ResidenteAccion();
		this._viviendaAccion = new ViviendaAccion();
		this._residenteViviendaAccion = new ResidenteViviendaAccion();
		this._reciboAccion = new ReciboAccion();
		
		this._residenteAccion.inicializarTablaResidente();
		this._viviendaAccion.inicializarTablaVivienda();
		this._residenteViviendaAccion.inicializarTablaResidenteVivienda();
		this._reciboAccion.inicializarTablaRecibo();
	}
	
	
	@Test
	public void ingresarUnReciboConResidenteVivienda() {
		Vivienda vivienda;
		Residente residente;
		
		residente = _residenteAccion.obtenerResidente(new Residente("48512654", "", "", "", 0, "", ""));
		vivienda = _viviendaAccion.obtenerVivienda(new Vivienda("10001", "", 0, "", ""));
		
		Recibo recibo = new Recibo("000000000001", "01/08/2011", "201108", vivienda, residente, "P");
		
		assertEquals(true, _reciboAccion.ingresarRecibo(recibo));
	}
	
	
	@Test
	public void ingresarMismoReciboConResidenteVivienda() {
		Vivienda vivienda;
		Residente residente;
		
		residente = _residenteAccion.obtenerResidente(new Residente("48512654", "", "", "", 0, "", ""));
		vivienda = _viviendaAccion.obtenerVivienda(new Vivienda("10001", "", 0, "", ""));
		
		Recibo recibo = new Recibo("000000000001", "01/08/2011", "201108", vivienda, residente, "P");
		
		assertEquals(true, _reciboAccion.ingresarRecibo(recibo));
	}
	
	
	@Test
	public void ingresarUnReciboSinResidenteVivienda() {
		Vivienda vivienda;
		Residente residente;
		
		residente = _residenteAccion.obtenerResidente(new Residente("48512654", "", "", "", 0, "", ""));
		vivienda = _viviendaAccion.obtenerVivienda(new Vivienda("10002", "", 0, "", ""));
		
		Recibo recibo = new Recibo("000000000001", "01/08/2011", "201108", vivienda, residente, "P");
		
		assertEquals(true, _reciboAccion.ingresarRecibo(recibo));
	}
	
	
	@Test
	public void actualizarUnReciboConResidenteVivienda() {
		Recibo recibo;
		recibo = _reciboAccion.obtenerRecibo("000000000001");
		
		recibo.setNroCuotas(20);

		assertEquals(true, _reciboAccion.actualizarRecibo(recibo));
	}
	
	
	@Test
	public void ingresarOtroReciboConResidenteVivienda() {
		Vivienda vivienda;
		Residente residente;
		
		residente = _residenteAccion.obtenerResidente(new Residente("45214578", "", "", "", 0, "", ""));
		vivienda = _viviendaAccion.obtenerVivienda(new Vivienda("10002", "", 0, "", ""));
		
		Recibo recibo = new Recibo("000000000002", "05/08/2011", "201108", vivienda, residente, "P");
		
		assertEquals(true, _reciboAccion.ingresarRecibo(recibo));
	}

}
